package com.system.common.service.purview;

import com.system.common.entity.purview.Purview;
import com.system.common.request.BaseReq;
import com.system.common.request.purview.SavePurviewReq;
import com.system.common.response.BaseResp;
import com.system.common.response.PageResp;
import com.system.common.vo.purview.PurviewVo;

import java.util.List;
import java.util.Map;

public interface PurviewService {

    /**
     *  保存
     * @return
     */
    BaseResp savePurview(SavePurviewReq request);

    Purview getPurviewByPrimaryKey(Long id);

    PageResp queryAllPurview(BaseReq req);

    /**
     *   软删除
     * @param request
     * @return
     */
    BaseResp doDelPurview(BaseReq request);

    /**
     *  初始化权限
     * @return
     */
    boolean initPurview();

    /**
     *  判断该地址是否要登陆才能访问
     * @param url
     * @return
     */
    boolean noNeedLogin(String url);

    List<PurviewVo> getPurviewByRoleIds(List<Long> ids);

    PageResp queryRolePurview(BaseReq req);

    PageResp<Map<String,Object>> queryMenu(List<PurviewVo> purviewList);
}
